package br.com.jvet.persistencia;

import java.util.HashMap;
import java.util.Map;

import javax.ejb.Stateless;

import br.com.jvet.entidade.Usuario;
import br.com.jvet.util.CommomUtils;

@Stateless
public class UsuarioDAO extends AbstractDAO<Usuario, Integer> {

	public UsuarioDAO() {
		super(Usuario.class);
	}

	public static final String SELECT_POR_EMAIL = "Select u from "
			+ Usuario.class + " u where u.email =:email";

	public static final String SELECT_POR_LOGIN_SENHA = "Select u from "
			+ Usuario.class.getSimpleName() + " u where upper(u.login) =:login and u.senha =:senha";
	
	public static final String SELECT_POR_LOGIN = "Select u from "
			+ Usuario.class.getSimpleName() + " u where upper(u.login) =:login ";

	public Usuario buscaUsuarioPorEmail(String email) {
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("email", email);

		return super.buscarUmResultado(SELECT_POR_EMAIL, parameters);
	}

	public Usuario buscaUsuarioPorLoginSenha(String login, String senha) {
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("login", login.toUpperCase());
		parameters.put("senha", CommomUtils.criptografia(senha));

		return super.buscarUmResultado(SELECT_POR_LOGIN_SENHA, parameters);
	}
	
	public boolean existeUsuario(Usuario usuario) {
		Map<String, Object> parameters = new HashMap<String, Object>();
		System.out.println("existe:"+usuario.getLogin());
		parameters.put("login", usuario.getLogin().toUpperCase().trim());
		Usuario outro = super.buscarUmResultado(SELECT_POR_LOGIN,
				parameters);
		if (outro!=null && outro.getCodigo()!=usuario.getCodigo()) {
			return true;
		}
		return false;
	}

}
